package utils

import (
	"crypto/md5"
	"fmt"
	"sync"
)

// 声明一个全局的互斥锁
// lock是一个全局的互斥锁,
// sync是包:synchornized同步
// Mutex :是互斥
var lock sync.Mutex

func MD5(str string) string {
	lock.Lock()
	data := []byte(str) //切片
	has := md5.Sum(data)
	md5str := fmt.Sprintf("%x", has) //将[]byte转成16进制
	lock.Unlock()
	return md5str
}
